package com.zwps.biz.dal.db.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zwps.biz.dal.db.object.DeptDO;

import java.util.List;
import java.util.Set;

import org.apache.ibatis.annotations.Param;

public interface DeptDAO extends BaseMapper<DeptDO> {

    /**
     * 通过deptCode修改所有子集的部门编码
     * 
     * @Title: updateChildrenTreeCode
     * @Description:
     * @param oldDeptCode
     * @param newDetpCode
     * @return int
     * @author lyh
     * @date 2023年5月22日 上午11:54:42
     */
    int updateChildrenTreeCode(@Param("oldTreeCode") String oldTreeCode, @Param("newTreeCode") String newTreeCode,
            @Param("tag") String tag);

    /**
     * 通过树编码查询当前以及所有下级的部门ID列表
     * @Title: findChildrenDeptIds
     * @Description: 
     * @param treeCode
     * @param tag 如果传了改值，就不会返回treeCode本身对应的部门ID
     * @return Set<String>
     * @author lyh
     * @date 2023年5月27日 上午9:32:45
     */
    Set<String> findChildrenDeptIds(@Param("treeCode") String treeCode, @Param("tag") String tag);
    
    int countUserNum(@Param("treeCode") String treeCode);
    
    List<String> findDeptParentIds(@Param("treeCodes") List<String> treeCodes, @Param("tag") String tag);

}
